#ifndef SHAPE_EMBRYO_EVALUATOR_H
#define SHAPE_EMBRYO_EVALUATOR_H

#include "EmbryoEvaluator.h"
#include "../../../physics/cpm/grid/SimpleGrid.h"

namespace GA {

class EmbryoIndividual;

class ShapeEmbryoEvaluator : public EmbryoEvaluator {
public:
	/* ctor */
	ShapeEmbryoEvaluator(int gridWidth, int gridHeight);

	/* evaluate */
	double evaluate(EmbryoIndividual const& individual);

protected:
	/* shape setter */
	void setShapePixel(int x, int y);

private:
	/* grid size */
	int _gridWidth;
	int _gridHeight;

	/* shape grid */
	SimpleGrid _shapeGrid;
};

} // GA

#endif // SHAPE_EVALUATOR_H

